#ifndef __N_BUFFER_H__
#define __N_BUFFER_H__

#include "Number.h"
#include "Type.h"

/**
 * 数码管预缓存对象(Number Buffer)，继承自当前数字
 * 0x0 ~ 0x9: 0 - 9
 * 0xa: 负号 -
 * 0xb: 使用科学记数法(仅在scibuf最高位有效)
 * 0xc: 大写字母 E
 * 0xd: 不显示
 */

/*数字显示缓冲，每一个字节存放两个数字或者符号*/
extern uint8 numbuf[6];
/*科学记数法缓冲，存放科学计数尾*/
extern uint8 scibuf[2];
/**小数点位置表示，高四位若为 0xb 则表示有小数点，
 * 若为 0xd 则无小数点，低四位表示小数点之前的数
 * 字位数(负号也算一位)
 */
extern uint8 dotpot;

/**
 * 将 Number 类转化为数码管预缓存 Number Buffer
 */
void n_buffer_format (void);

/**
 * 获取 NBuffer 的 numbuf 某位字符
 * 11 10 09 08 07 06 05 04 03 02 01 00
 * 5_ _  4_ _  3_ _  2_ _  1_ _  0_ _
 */
uint8 n_buffer_getnum_at (uint8 index);

#endif